/*
 * GalaxyMapFactory.h
 *
 *  Created on: 2011-5-6
 *      Author: Administrator
 */

#ifndef GALAXYMAPFACTORY_H_
#define GALAXYMAPFACTORY_H_

#include "GalaxyMap.h"
#include "GalaxyDomination.h"
#include "Player.h"

namespace Galaxy {

class GalaxyMapFactory {
public:
	GalaxyMapFactory();
	virtual ~GalaxyMapFactory();

public:
	static GalaxyMap* GetGalaxyMap(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);

	static GalaxyMap* GetTutorial(GalaxyDomination* pGalaxyDomination, Player* pPlayer);

private:
	static GalaxyMap* Create1v1001BasicLevel1(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1002BasicLevel2(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1003SmallPlanet(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1004BigPlanet(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1005BigCentralPlanet(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v10063DivideToConquer(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1007Dollard(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1008Circle(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v1009Rives(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);
	static GalaxyMap* Create1v10102X(GalaxyDomination* pGalaxyDomination, Player* pPlayer, int gameLevel, int aiLevel);

};

}

#endif /* GALAXYMAPFACTORY_H_ */
